getDefaultProtocol{
  return new ProtocolDescription("Local");
}
getConfigurationClass{
  return WeldSEConfiguration.class;
}
setup{ }
start{ }
stop{ }
deploy{
}
undeploy{
}
deploy{
  final ShrinkwrapBeanDeploymentArchive beanArchive=archive.as(ShrinkwrapBeanDeploymentArchive.class);
  final org.jboss.weld.bootstrap.spi.Deployment deployment=new org.jboss.weld.bootstrap.spi.Deployment(){
    public Collection<BeanDeploymentArchive> getBeanDeploymentArchives(){
      return Arrays.asList((BeanDeploymentArchive)beanArchive);
      return beanArchive.getServices();
    public BeanDeploymentArchive loadBeanDeploymentArchive(    Class<?> beanClass){
      return ServiceLoader.load(Extension.class,beanArchive.getClassLoader());
  ContextClassLoaderManager classLoaderManager=new ContextClassLoaderManager(beanArchive.getClassLoader());
  classLoaderManager.enable();
  classLoaderManagerInst.set(classLoaderManager);
  WeldBootstrap bootstrap=new WeldBootstrap();
  bootstrap.startContainer(Environments.SE,deployment).startInitialization().deployBeans().validateBeans().endInitialization();
  WeldManager manager=bootstrap.getManager(beanArchive);
  weldBootstrapInst.set(bootstrap);
  weldManagerInst.set(manager);
  beanManagerInst.set(manager);
}
getBeanDeploymentArchives{
  return Arrays.asList((BeanDeploymentArchive)beanArchive);
}
getServices{
  return beanArchive.getServices();
}
loadBeanDeploymentArchive{ }
getExtensions{
  return ServiceLoader.load(Extension.class,beanArchive.getClassLoader());
}
undeploy{
  WeldBootstrap bootstrap=weldBootstrapInst.get();
  if (bootstrap != null) {
    bootstrap.shutdown();
  classLoaderManager.disable();
}
